Дискреционное разграничение прав в Linux.
Исследование влияния дополнительных атрибутов
Кармацкий Н. С. Группа НФИбд-01-21
Российский университет дружбы народов, Москва,
Россия
29 Сентября 2024
Цель работы
Изучение механизмов изменения идентификаторов, применения SetUID- и
Sticky-битов. Получение практических навыков работы в консоли с
дополнительными атрибутами. Рассмотрение работы механизма смены
идентификатора процессов пользователей, а также влияние бита Sticky на
запись и удаление файлов
Теоретическое введение 1
SetUID (SUID) SetUID — это бит, который позволяет
пользователям запускать исполняемые файлы с правами владельца этого
файла. Это означает, что если файл имеет установленный бит SUID, любой
пользователь, запускающий этот файл, будет выполнять его с привилегиями
владельца файла, а не с привилегиями своего собственного пользователя.
Это часто используется для программ, требующих повышенных прав,
например, команда passwd, которая позволяет пользователям изменять свои
пароли.
Теоретическое введение 2
Sticky-бит Sticky-бит — это бит, который устанавливается на
каталоги и ограничивает возможность удаления файлов в этом каталоге.
Если Sticky-бит установлен на каталог, только владелец файла или
суперпользователь может удалить или переименовать файлы в этом каталоге.
Это полезно для общих каталогов, таких как /tmp, где множество
пользователей могут создавать файлы.
Выполнение лабораторной работы
Проверка компилятора
Проверяем наличие компилятора языка C (рис. 1)
Наличие компилятора
Создание программы 1
Создаем отдельный каталог для программ, а так же файл с 1 первой
программой (рис. 2)
Создание файлов
Создание программы 2
Заполнение файла (рис. 3)
Листинг программы
Создание программы 3
Компилируем и выполняем программу, а так же выполним системуню
программму id. В результате получем из нашей программы те же данные, что
и из id, но только в более коротком варианте (рис. 4)
Запуск программы
Создание программы 4
Усложняем программу, добавив вывод действительных идентификторов,
так же назовем ее simpleid2 (рис. 5)
Усложненная программа
Создание программы 5
Компилируем новую програаму и получаем дополнительные сведения в
отличии от первоначальной программы (рис. 6)
Компиляция нового файла
Изменение прав доступа 1
С помощью chown изменяю владельца файла на суперпользователя, с
помощью chmod изменяю права доступа (рис. 7)
Новые права
Далее запускаем программу получаем все значения равными 0, так как
выполняем все от прав суперпользователя
Изменение прав доступа 2
Пробуем сменить атрибуты относительно SetGID-бита, получаем все
точно тоже самое (рис. 8)
Другие права доступа
Создание новой программы 1
Создадим программу readfile.c, которая будет читать файлы.
Откпомпилируем ее, а так же поменяем владельца у файла и изменим права
так, чтобы только суперпользователь мог прочитать его, а guest не мог
(рис. 10)
Листинг программы
Создание новой программы 2
Компиляция и изменение в правах
файла
Проверка работоспобности программы с новыми правами 1
Проверка новых прав доступа для guest, как видим ничего не
получается сделать (рис. 11)
Отказано в доступе
Проверка работоспобности программы с новыми правами 2
пытаемся считать файл с помошью программмы, но получае отказ в
доступе (рис. 12)
Отказано в доступе при работе
программы
Мы запретили всем, кроме суперпользователя испольнять или читать
файл, поэтому никто и не может выполнить никакое действие с файлом
Исследование Sticky-бита 1
Выясним ,установлен ли атрибут Sticky на директории /tmp. От имени
пользователя guest создаем файл file01.txt с тестом text в
каталоге /tmp. Так же просмотрим артирубы файла и разрешим чтение и
запись для категории пользователей “все остальные” (рис. 13)
Создание и настройка файла
Исследование Sticky-бита 2
Попробуем прочитать, записать и удалить файл от имени пользователя
guest2. Получаем отказ в доступе везде, кроме чтения файла (рис.
14)
Попытка чтения и записи в файл от
guest2
Исследование Sticky-бита 3
Снимем атрибут Sticky с директории /tmp и повторим действия,
описанные в пункте 12. (рис. 15)
Снятие атрибута Sticky с директории
/tmp
Исследование Sticky-бита 4
Попробуем снова выполнить все те же действия. Получаем доступ к файлу
от guest2 (рис. 16)
Изучили механизмы изменения идентификаторов, применения SetUID- и
Sticky-битов. Полученили практическик навыкои работы в консоли с
дополнительными атрибутами. Рассмотрели работу механизма смены
идентификатора процессов пользователей, а также влияние бита Sticky на
запись и удаление файлов